package com.example.offer;

/**
 * 334. 递增的三元子序列
 * 给你一个整数数组 nums ，判断这个数组中是否存在长度为 3 的递增子序列。
 * <p>
 * 如果存在这样的三元组下标 (i, j, k) 且满足 i < j < k ，使得 nums[i] < nums[j] < nums[k] ，返回 true ；否则，返回 false 。
 * <p>
 * 示例 1：
 * <p>
 * 输入：nums = [1,2,3,4,5]
 * 输出：true
 * 解释：任何 i < j < k 的三元组都满足题意
 * <p>
 * 思路：设置两个变量，一个更新min，一个更新mid
 * 当前值小于min时，只更新min，否则更新mid。 当遇到比mid大的时候，返回结果
 */
public class IncreasingTriplet {
    public static void main(String[] args) {
        IncreasingTriplet increasingTriplet = new IncreasingTriplet();
        increasingTriplet.a();
    }

    public boolean increasingTriplet(int[] nums) {

        if (nums.length < 3) return false;
        int min = Integer.MAX_VALUE, mid = Integer.MAX_VALUE;
        for (int i : nums) {
            if (i > mid) return true;
            if (i <= min) min = i;
            else mid = i;
        }
        return false;
    }

    public void a() {
        synchronized (this) {
            System.out.println("");
        }
    }
}

